The present application relates to vector based software rendering applications and more specifically vector based zooming transformations.
Many data visualization applications, for example map applications, provide a zoom feature which allows a user to increase or decrease the size of objects in the viewing field.
Zooming is a type of animation. In vector based imaging programs, such as the Scalar Vector Graphics (SVG) standard promulgated by the World Wide Web Consortium, simple graphic elements are defined by tags in an Extensible Markup Language (XML) document. Complex graphic images can be composed using the basic graphic elements. The appearance and location of a particular graphic element are controlled by assigning values to the attributes of the graphic element.
Animation of a vector based image is achieved by changing values of selected attributes of selected graphic elements over time. Zooming generally requires a change of scale of selected graphic elements to change their size over time. Zooming in requires that the scale be increased over time and zooming out requires that the scale be decreased over time. In some types of images, such as, for example, maps, a zooming transformation is applied only to an underlying map image while markers, such as place names or other indicia, are to remain the same size. Further, in many cases the markers are to remain in the same position, e.g., have the same latitude and longitude coordinates, relative to the zoomed map image. Accordingly, the markers must be translated during the zooming process to preserve the relationships between different graphic elements in the map image and the markers during the zooming process.